Audio/Video Content Synchronization Through Playlists

ABSTRACT

A method is disclosed for performing bi-directional synchronization between a host device having a large capacity, e.g., a personal computer ( 20 ), in which a dedicated application program is installed and a mobile media player device ( 10 ) using play lists. The mobile media player device ( 10 ) is capable of independently downloading media content including audio and video files and creating play lists therefrom. Upon connecting the personal computer ( 20 ) and the media player ( 10 ) play lists marked for synchronization are downloaded from the media player ( 10 ) to the personal computer ( 20 ) wherein the dedicated application program uses time and date information of the play lists to determine which play lists of the personal computer ( 20 ) and media player ( 10 ) are to be updated. The updated play lists are stored on the respective devices ( 10, 20 ).

This invention relates to synchronization, and more particularly to a system and method for maintaining synchronization between a multimedia device and a content source such as a personal computer or set top box.

Media devices, such as digital music players, typically access their content from sources of content that typically have larger storage capacity. These content sources may include personal computers, media servers, set-top-box and content host. Generally, a user connects a player to the content source. The content source typically has a software application allowing the user to select the content to be loaded onto the player. In the example of a music player, the content would be digital music files, such as MP3 (Moving Picture Experts Group, layer 3) files.

In order to allow the user to select content, this application knows all of the content available. As the user selects content, the application moves the content to the media player. This application may also provide the user the ability to manage the content on the media player, as the media player is connected to the content source running the application.

Management of the content, both on the content source and the media player, generally involves tools to organize and classify the music files. Organization may take the form of sorting or grouping of the content files. One example of grouping the files is a play list. A play list may identify files that have a similar attribute, such as songs from a particular album, the artist, genre, or songs selected by the user. Creation of a play list generally involves the user selecting each content file individually and then identifying that file as being part of the play list. The play list is then saved with some sort of identifying name, allowing the user to play those files by selecting that play list.

One useful function of a play list is the ability to synchronize a home computer with the media player. For example, the music collection on the media player may be updated from a home computer, school computer, or other content source, by simply connecting the media player to the content source. Upon connecting the two devices, the media player will recognize the content source as the primary computer. A user then identifies which play lists from the content source he or she wishes to synchronize with the media player. Subsequent to selecting one or more play lists, an application program resident in the content source will automatically update (sync) the player with the content source using the one or more user identified play lists. That is, the identified play lists and songs included therein are copied from the content source to the player. In this manner, the songs and play lists from a content source, as identified by a user, are kept in sync with the songs and play lists on a player.

One drawback of the ‘synchronization’ method described above is that it is a unidirectional operation that updates the play list(s) of the media player using the play list(s) of the content source. In the case where the media device is capable of independently recording audio/video content from multiple sources, there is no provision for updating the host device from the media player.

In view of the foregoing considerations, there is a need for a synchronization method that flexibly allows for bi-directional synchronization between a content source (e.g., home computer, set-top box, etc.) and a multimedia player device using play lists.

The present invention provides techniques related to bi-directional synchronization of media content stored on a multimedia player device with media content stored on a content source (e.g., personal computer, set-top box, home media center) through play lists.

As a method for performing bi-directional synchronization between media content of a content source with media content of a multimedia player through play lists, one embodiment of the invention includes at least the acts of: detecting connection of the media player to the host computer; requesting, from the host computer, play lists from the media player marked for synchronization; responsive to the query, transferring from the media player to the host computer the play lists marked for synchronization; comparing time and date information of said media player play lists marked for synchronization with time and date information for corresponding ones of play lists of the host computer having the same play list identifier, the comparing producing comparison information; determining which play lists are to be copied from the media player to the host computer and which play lists are to be copied from the host computer to the media player based on the comparison information; and copying the determined play lists to perform the bi-directional synchronization.

FIG. 1 is a block diagram of a synchronization system according to one embodiment of the invention; and

FIG. 2 is a flow diagram of synchronization processing according to one embodiment of the invention.

The invention relates to bi-directional synchronization of multimedia content between a content source (e.g., personal computer, set-top box, home media center) and a portable media player device through play lists.

FIG. 1 is a block diagram of a synchronization system according to one embodiment of the invention. The synchronization system 100 includes a media player device 10 including an associated data storage device 12 (e.g., disk drive) for storing data related to user generated play lists and a personal computer 20 including an associated data storage device 22 for storing, inter alia, data related to user generated play lists.

The portable media player device 10 is typically a portable computing device dedicated to processing multi-media content such as music, audio, and images (video). For example, the media player device can be a music player (e.g., MP3 player, Ipod from Apple™ corporation), a game player, a video player, a video recorder, a camera, an image viewer and the like. These devices are generally battery operated and highly portable so as to allow a user to listen to music, play games or video, record video or take pictures wherever the user travels.

The personal computer 20, as is well known, is characterized as being generally non-mobile, having a large storage capacity, considerable processing power, and means for retrieving multimedia content from networked (e.g., internet, cable, etc.) and non-networked sources (e.g., DVD, CD and HDD).

Typically, the media player 10 and personal computer 20 include conventional components such as a cache memory for storing media content in-use, a screen display for displaying information to a user, and a processor (e.g., microprocessor) for controlling operation of the devices. Both the personal computer 20 and media player device 10 also include applications that allow a user to compose/edit play lists. Internally, the play lists of the respective devices 10, 20 are embodied as data structures. The data structures point to media content (e.g., multimedia files) of the play lists residing on a memory store (e.g., disk drive, hard drive) within the respective devices 10, 12. The personal computer 20 also includes a synchronization manager 25.

A peripheral cable 30 provides a data path (or data link) between the media player 10 and the personal computer 20. The peripheral cable 30 provides a peripheral bus that couples the media player 10 to the personal computer 20. The peripheral bus, for example, could be a FIREWIRE bus or a Universal Serial Bus (USB).

FIG. 2 is flow diagram of synchronization processing 200 according to one embodiment of the invention. The synchronization processing 200 is, for example, performed by the personal computer 20 illustrated in FIG. 1. More specifically, the synchronization processing 200 is performed under the control of the synchronization manager 25 illustrated in FIG. 1.

At act 202: The media player device 10 is connected to the personal computer 20 via peripheral cable 30 whereby the synchronization manager 25 of the personal computer 20 automatically detects the connection of the media player 10 to the personal computer 20. Such media player devices 10 are typically provided with a capability to plug into a USB port or an IEEE 1394 port, via peripheral cable 30, which is also referred to as a FireWire port or an i-Link port, or another port of the computer that is hot. A hot port is one into which a cable for a device can be plugged while the computer is on, desirably for immediate detection by the operating system. For some operating systems, the parallel port, which is also referred to as the IEEE 1284 port, is also a hot port.

At act 204: The synchronization manager 25 determines if the connected media player device 20 is the device usually used for synchronization. One way of making this determination is by using the device's globally unique silicon identifier (GUID). The GUID uniquely identifies a 1394 enabled device connected to a 1394 bus. If a GUID is not available, the process can use another accessible ID that is unique to the media player device 10.

At act 206: The synchronization manager 25 queries the media player device 10 for a copy of its play lists which have been marked for synchronization by a user of the media player device 10;

At act 208: The media player device 10, in response to the query, transfers the play lists which have been marked by a user of the media player device 10 for synchronization to the personal computer 20. The user of the media player device 10 has the option of deciding which play lists are to be included in the synchronization procedure 200 by marking the play lists for inclusion on the media player device 10.

Marking a play list for synchronization in the synchronization procedure 200 can occur on the media player device 10 through a standard screen display comprising a play list title portion to permit the user to readily identify the selected play list. The identified play list(s) can be marked by pressing a “select for synch” icon or, alternatively, simply by touching a touch-sensitive display.

At act 210: The synchronization manager 25 compares time and date information for the play lists copied from the media player device 10 with time and date information for corresponding play lists on the personal computer 20. A corresponding play list on the personal computer 20 may be identified as having the same play list title as a copied play list from the media player device 10. Such comparison produces comparison information concerning differences between the time and date information for play lists associated with the media player device 10 and time and date information for play lists associated with the personal computer 20.

At act 212: The synchronization manager 25 determines one or more play lists to copy between the personal computer 20 and the media player device 10 based on the comparison information.

At act 214: Based on the comparison information, for those play lists of the personal computer 20 having more current time and date information than the corresponding play lists of the media player device 10 with which they are compared, the compared media player device 10 play lists are updated and transferred back to the media player device 10. At the media player device 10, the memory storage device 12 is updated to reflect the updated media play lists.

At act 216: Based on the comparison information, for those play lists of the media player device 10 having more current time and date information than the play lists of the personal computer 20 with which they are compared, the personal computer 10 play lists are updated and the associated memory storage device 22 is updated accordingly.

At act 218: The synchronization manager 25 determines whether the media player device 10 has created any new play lists. If no new play lists, the process continues at act 222.

At act 220: If it is determined at act 218 that one or more new play lists have been created by a user of the media player 10, then the personal computer 20 commands the media player 10 to transfer the one or more new play lists to the personal computer 20 to be stored in a memory 22 (e.g., disk drive, hard drive) of the personal computer 20.

At act 222: The synchronization manager 25 determines whether the media player device 10 has deleted any existing play lists.

At act 224: If it is determined at act 222 that one or more play lists have been deleted at the media player 10, then the memory store (e.g., disk drive, hard drive) of the personal computer 20 is updated to store the media contents of the deleted play lists in an archive directory. The user of the personal computer 20 has the option of retaining the contents of the archive directory until the user decides to permanently purge the unreferenced content stored therein. It is noted that the deleted play lists are permanently deleted from the memory 12 of the media player 10.

At act 226: The synchronization manager 25 determines whether the personal computer 20 has created any new play lists. If not, the process terminates at act 230.

At act 228: If it is determined at act 226 that one or more new play lists have been created at the personal computer 20, then the one or more new play lists are copied to the media player 10. The process then terminates at act 230 The operation of the system 200 to synchronize media content has been previously described. The system advantageously allows the updating of media content using time and date information of play lists in each device to be synchronized. The data structures of the respective devices are automatically updated in accordance with the synchronization procedure. Thus, the system 100 provides a powerful but simple technique that allows a user to quickly update media content in both a host (e.g., personal) computer or similarly configured device and a portable media player device by simply identifying those play lists for which the user decides to include for synchronization. The system further provides a means for archiving media content associated with play lists deleted by the portable media player. The system further provides a means for updating the data structure of the personal computer for any new lists created by a user of the media player device.

Although this invention has been described with reference to particular embodiments, it will be appreciated that many variations will be resorted to without departing from the spirit and scope of this invention as set forth in the appended claims. The specification and drawings are accordingly to be regarded in an illustrative manner and are not intended to limit the scope of the appended claims.

In interpreting the appended claims, it should be understood that:

a) the word “comprising” does not exclude the presence of other elements or acts than those listed in a given claim;

b) the word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements;

c) any reference signs in the claims do not limit their scope;

d) several “means” may be represented by the same item or hardware or software implemented structure or function; and

e) each of the disclosed elements may be comprised of hardware portions (e.g., discrete electronic circuitry), software portions (e.g., computer programming), or any combination thereof. 

1. A method for performing bi-directional synchronization between media content of a media player (10) with media content of a host device (20) through play lists, said method comprising the acts of: detecting connection of the media player (10) to the host device (20); requesting, from the host device (20), at least one play list from the media player (10) marked for synchronization; responsive to the query, transferring from the media player (10) to the host device (20) said at least one play list marked for synchronization; comparing time and date information of said at least one play list marked for synchronization with time and date information of corresponding play lists of said host device (20), said comparing producing comparison information; determining which play lists are to be copied from the media player (10) to the host device (20) and which play lists are to be copied from the host device (20) to the media player (10) based on the comparison information; and copying the determined play lists to perform the bi-directional synchronization.
 2. The method of claim 1, further comprising creating and storing play lists comprising multi-media content in each of said host device (20) and media player (10).
 3. The method of claim 1, wherein the host device (20) is a personal computer (20), and wherein the acts of claim 1 are carried out using a dedicated application program stored on the personal computer (20).
 4. The method of claim 1, further comprising the act of storing the play lists copied from the media player (10) to the host device (20) in a memory store (22) of the host device and storing the play lists copied from the host device (20) to the media player (10) in a memory store (12) of the media player (10).
 5. The method of claim 1, wherein said act of detecting connection of the media player (10) to the host device (20) further comprises determining if the media player (10) is connected to the host device (20) for purpose of synchronization.
 6. The method of claim 1, wherein said method further comprises the acts of: determining if the media player (10) has created at least one new play list; copying the at least one new play list from the media player (10) to the host device (20) when said determination act is satisfied; and storing the at least one new play list in a data directory of the host device (20).
 7. The method of claim 1, wherein said method further comprises the acts of: determining if the media player (10) has deleted at least one pre-existing play list; copying the at least one deleted play list from the media player (10) to the host device (20); and storing the at least one deleted play list in an archive data directory of the host device (20).
 8. The method of claim 1, wherein the media player (10) comprises an audio player, and wherein the audio player play lists comprise media content comprising at least audio files of songs.
 9. The method of claim 1, wherein the media player (10) comprises a video player, and wherein the video player play lists include media content comprising at least video files of videos.
 10. The method of claim 1, wherein the media player (10) comprises an image viewer, and wherein the image viewer play lists include media content comprising at least image files of images.
 11. An apparatus for performing bi-directional synchronization between media content of a media player (10) with media content of a host device (20) through play lists, said apparatus comprising: said host device (20) comprising: i) a synchronization manager (25) configured to compare time and date information for play lists copied from the media player 10 with time and date information for corresponding play lists stored on the personal computer (20), said synchronization manager (25) further comprised to automatically detect the connection of the media player (10) to the personal computer (20). ii) a memory store (22) providing for the storage of media content configured as a plurality of play lists, and iii) a host device interface supporting the transfer of media content to the host device.
 12. The apparatus of claim 11, wherein the host device (20) is a personal computer (20).
 13. The apparatus of claim 11, wherein the host device interface is an IEEE 1394 port.
 14. The apparatus of claim 11, wherein the host device interface is a USB port.
 15. A machine-readable medium whose contents cause a computer system to perform a method for performing bi-directional synchronization between media content of a media player (10) with media content of a host device (20) through play lists, said method comprising the acts of: detecting connection of the media player (10) to the host device (20); requesting, from the host device (20), at least one play list from the media player (10) marked for synchronization; responsive to the query, transferring from the media player (10) to the host device (20) said at least one play list marked for synchronization; comparing time and date information of said at least one play list marked for synchronization with time and date information of corresponding play lists of said host device (20), said comparing producing comparison information; determining which play lists are to be copied from the media player (10) to the host device (20) and which play lists are to be copied from the host device (20) to the media player (10) based on the comparison information; and copying the determined play lists to perform the bi-directional synchronization.
 16. The machine readable medium of claim 15, wherein said act of detecting connection of the media player (10) to the host device (20) further comprises determining if the media player (10) is connected to the host device (20) for purpose of synchronization.
 17. The machine readable medium of claim 15, wherein said method further comprises the acts of: determining if the media player (10) has created at least one new play list; copying the at least one new play list from the media player (10) to the host device (20) when said determination act is satisfied; and storing the at least one new play list in a data directory of the host device (20).
 18. The machine readable medium of claim 15, wherein said method further comprises the acts of: determining if the media player (10) has deleted at least one pre-existing play list; copying the at least one deleted play list from the media player (10) to the host device (20); and storing the at least one deleted play list in an archive data directory of the host device (20).
 19. The machine readable medium of claim 15, further comprising creating and storing play lists comprising multi-media content in each of said host device (20) and media player (10). 